home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / include / linux / icmp.h < prev    next >
C/C++ Source or Header  |  2009-10-16  |  3KB  |  98 lines

  1. /*
  2.  * INET        An implementation of the TCP/IP protocol suite for the LINUX
  3.  *        operating system.  INET is implemented using the  BSD Socket
  4.  *        interface as the means of communication with the user level.
  5.  *
  6.  *        Definitions for the ICMP protocol.
  7.  *
  8.  * Version:    @(#)icmp.h    1.0.3    04/28/93
  9.  *
  10.  * Author:    Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
  11.  *
  12.  *        This program is free software; you can redistribute it and/or
  13.  *        modify it under the terms of the GNU General Public License
  14.  *        as published by the Free Software Foundation; either version
  15.  *        2 of the License, or (at your option) any later version.
  16.  */
  17. #ifndef _LINUX_ICMP_H
  18. #define    _LINUX_ICMP_H
  19.  
  20. #include <linux/types.h>
  21.  
  22. #define ICMP_ECHOREPLY        0    /* Echo Reply            */
  23. #define ICMP_DEST_UNREACH    3    /* Destination Unreachable    */
  24. #define ICMP_SOURCE_QUENCH    4    /* Source Quench        */
  25. #define ICMP_REDIRECT        5    /* Redirect (change route)    */
  26. #define ICMP_ECHO        8    /* Echo Request            */
  27. #define ICMP_TIME_EXCEEDED    11    /* Time Exceeded        */
  28. #define ICMP_PARAMETERPROB    12    /* Parameter Problem        */
  29. #define ICMP_TIMESTAMP        13    /* Timestamp Request        */
  30. #define ICMP_TIMESTAMPREPLY    14    /* Timestamp Reply        */
  31. #define ICMP_INFO_REQUEST    15    /* Information Request        */
  32. #define ICMP_INFO_REPLY        16    /* Information Reply        */
  33. #define ICMP_ADDRESS        17    /* Address Mask Request        */
  34. #define ICMP_ADDRESSREPLY    18    /* Address Mask Reply        */
  35. #define NR_ICMP_TYPES        18
  36.  
  37.  
  38. /* Codes for UNREACH. */
  39. #define ICMP_NET_UNREACH    0    /* Network Unreachable        */
  40. #define ICMP_HOST_UNREACH    1    /* Host Unreachable        */
  41. #define ICMP_PROT_UNREACH    2    /* Protocol Unreachable        */
  42. #define ICMP_PORT_UNREACH    3    /* Port Unreachable        */
  43. #define ICMP_FRAG_NEEDED    4    /* Fragmentation Needed/DF set    */
  44. #define ICMP_SR_FAILED        5    /* Source Route failed        */
  45. #define ICMP_NET_UNKNOWN    6
  46. #define ICMP_HOST_UNKNOWN    7
  47. #define ICMP_HOST_ISOLATED    8
  48. #define ICMP_NET_ANO        9
  49. #define ICMP_HOST_ANO        10
  50. #define ICMP_NET_UNR_TOS    11
  51. #define ICMP_HOST_UNR_TOS    12
  52. #define ICMP_PKT_FILTERED    13    /* Packet filtered */
  53. #define ICMP_PREC_VIOLATION    14    /* Precedence violation */
  54. #define ICMP_PREC_CUTOFF    15    /* Precedence cut off */
  55. #define NR_ICMP_UNREACH        15    /* instead of hardcoding immediate value */
  56.  
  57. /* Codes for REDIRECT. */
  58. #define ICMP_REDIR_NET        0    /* Redirect Net            */
  59. #define ICMP_REDIR_HOST        1    /* Redirect Host        */
  60. #define ICMP_REDIR_NETTOS    2    /* Redirect Net for TOS        */
  61. #define ICMP_REDIR_HOSTTOS    3    /* Redirect Host for TOS    */
  62.  
  63. /* Codes for TIME_EXCEEDED. */
  64. #define ICMP_EXC_TTL        0    /* TTL count exceeded        */
  65. #define ICMP_EXC_FRAGTIME    1    /* Fragment Reass time exceeded    */
  66.  
  67.  
  68. struct icmphdr {
  69.   __u8        type;
  70.   __u8        code;
  71.   __sum16    checksum;
  72.   union {
  73.     struct {
  74.         __be16    id;
  75.         __be16    sequence;
  76.     } echo;
  77.     __be32    gateway;
  78.     struct {
  79.         __be16    __unused;
  80.         __be16    mtu;
  81.     } frag;
  82.   } un;
  83. };
  84.  
  85.  
  86. /*
  87.  *    constants for (set|get)sockopt
  88.  */
  89.  
  90. #define ICMP_FILTER            1
  91.  
  92. struct icmp_filter {
  93.     __u32        data;
  94. };
  95.  
  96.  
  97. #endif    /* _LINUX_ICMP_H */
  98.